In recent years, with proliferation of low-cost and high-speed broadband connectivity, electronic messaging has become a part of everyday life. In addition, there has been a significant increase in utilization of electronic messaging in commercial applications. Generally, messaging can be separated into two categories: low volume (for example, such as messages exchanged between individuals or within groups of individuals); and high volume (for example, such as messages that are automatically sent out by various data processing systems, and that may contain information (e.g., stock prices) and/or instructions to perform particular tasks (e.g., to buy or sell stock shares).
Many companies in the financial sector increasingly rely on high volume electronic messaging to distribute key information and to conduct financial transactions. In many cases electronic messaging is implemented using a well-accepted real-time electronic messaging standard called the Financial Information Exchange (FIX) protocol. The FIX protocol is a messaging standard developed specifically for the real-time electronic exchange of securities transactions. FIX is a public-domain specification owned and maintained by FIX Protocol, Ltd., and as one of its key advantages, FIX enables communication between parties (e.g., financial institutions) with ostensibly disparate systems, thereby allowing for the transmission of critical transaction and financial data in a simple, highly structured message format.
Not surprisingly, the speed with which the messages can be sent by a messaging system is becoming more and more critical. For example, in the financial sector, traders who are able to receive and process messages from a market source, and submit order messages to the market faster than their rivals, have a real competitive advantage.
As a result, there has been a great deal of development in the field of high volume and high speed messaging systems and methodologies. In all cases, electronic messaging systems are implemented in a data processing hardware system equipped with software configured for processing and sending electronic messages, with the system being connected to a communication link so that messages can be sent to other systems. When messages are generated by a messaging system, they must be processed for transmission over the communication link. As an example, the processing may involve conversion of a message into a stream of bytes of a particular value, along with other determination of other values, such as a total number of bytes in a message, and a checksum value (or equivalent) used to enable the recipient system to determine whether the message was corrupted (or otherwise changed) during transmission.
Accordingly, the advances in field of high speed electronic messaging have all been related to improving the efficiency of message processing software, and more often to utilization of more and more powerful (and costly) computer systems. However, with increasing volume and transmission speed requirements of messaging applications, currently available systems have began to reach the limits of how fast messages can be generated, processed and sent using traditional methods, even utilizing the latest available hardware.
The reason for this limitation is that conventional high speed messaging systems prepare each outgoing message for transmission over a communication link, by processing the message from start to finish to obtain a number of predetermined types of values which are utilized to transmit the message, and to verify its receipt by the recipient(s). Referring now to Prior Art FIG. 6, the operation of a conventional messaging system is shown as a process 300 which may be performed for each outgoing message, sequentially or in parallel, or configured for batch operation of one or more steps. The outgoing message is generated/composed at a step 302, and at a step 304, the conventional messaging system performs all the necessary processing operations to prepare the message for transmission (e.g., calculate message length, checksum, etc.). The processed message is then transmitted at a step 306.
While this approach is reasonable for low volume messaging, it becomes very problematic when the desired message throughput increases to a high level (for example to tens of thousands (or more)) messages per second—as is the requirement with many financial applications. As a result, the cost/performance ratio of conventional messaging systems forms a virtual limit to the messaging throughput, as higher throughput requires a disproportionately higher investment in hardware and software.
It would thus be desirable to provide an electronic messaging system and method for accelerating the generation and transmission of electronic messages, providing a much higher messaging speed than a conventional electronic messaging system utilizing similar hardware.